Amazon DynamoDB হল একটি সম্পূর্ণভাবে পরিচালিত, উচ্চ পারফরম্যান্স, এবং স্কেলেবল NoSQL ডেটাবেস সিস্টেম যা AWS (Amazon Web Services) দ্বারা সরবরাহিত। এটি মূলত ডিস্ট্রিবিউটেড, স্কিমালেস ডেটাবেস সিস্টেম, যা আর্কিটেকচার, স্কেলিং এবং পরিচালনার জন্য AWS-এর শক্তিশালী ইনফ্রাস্ট্রাকচার ব্যবহার করে। DynamoDB বিশেষভাবে দ্রুত, লো-লেটেন্সি ডেটা রিড এবং রাইট অপারেশন সাপোর্ট করার জন্য ডিজাইন করা হয়েছে।
DynamoDB মূলত Key-Value এবং Document-based ডেটা মডেল সাপোর্ট করে, যেখানে ডেটার স্টোরেজ সহজ এবং খুব দ্রুত করা সম্ভব।
DynamoDB তে ডেটা ম্যানিপুলেশন বেশ সহজ। কিছু গুরুত্বপূর্ণ অপারেশন:
DynamoDB একটি অত্যন্ত কার্যকরী, স্কেলেবল, এবং উচ্চ পারফরম্যান্স ডেটাবেস সিস্টেম, যা ব্যবহারকারীকে ডেভেলপমেন্টের সময় দ্রুত এবং প্রভাবশালী ডেটা সংরক্ষণ এবং পুনরুদ্ধারের সুবিধা প্রদান করে। বিভিন্ন ধরনের ডেটাবেস ব্যবহারের জন্য এটি উপযুক্ত, বিশেষ করে রিয়েল-টাইম অ্যাপ্লিকেশন, হাই-ট্রাফিক ওয়েব অ্যাপ্লিকেশন, এবং ইভেন্ট ড্রিভেন আর্কিটেকচারের জন্য।
Amazon DynamoDB হল একটি NoSQL ডেটাবেস সিস্টেম, যেখানে ডেটা Tables, Items, এবং Attributes আকারে সংরক্ষিত হয়। এখানে প্রতিটি ধারণার বিস্তারিত ব্যাখ্যা দেওয়া হলো:
DynamoDB এ Table হল ডেটাবেসের মূল একক, যেখানে ডেটা সংরক্ষণ করা হয়। একটি টেবিল Items ধারণ করে, এবং প্রতিটি Item একটি ডেটা রেকর্ড বা এন্ট্রি।
যদি আপনার একটি User টেবিল থাকে, সেটি ব্যবহারকারীর তথ্য সংরক্ষণ করবে, যেমন: ব্যবহারকারীর নাম, ইমেইল, ফোন নম্বর ইত্যাদি।
DynamoDB তে Item হল টেবিলের একটি একক ডেটা রেকর্ড। প্রতিটি আইটেম একটি ডেটা এন্ট্রি, যা টেবিলের মধ্যে একটি নির্দিষ্ট Primary Key এর মাধ্যমে অনন্যভাবে চিহ্নিত করা হয়। আইটেমটি একাধিক Attributes ধারণ করতে পারে।
ধরা যাক, একটি User টেবিলের মধ্যে নিম্নলিখিত আইটেমগুলো থাকতে পারে:
Attribute হল DynamoDB আইটেমের একটি নির্দিষ্ট বৈশিষ্ট্য বা তথ্য। এটি একটি কীগুলির মান (key-value pair) হতে পারে, যা আইটেমের বিভিন্ন তথ্য বা প্রোপার্টি বর্ণনা করে।
ধরা যাক, একটি User আইটেমের মধ্যে নিম্নলিখিত Attributes থাকতে পারে:
001
(String)John Doe
(String)johndoe@email.com
(String)+1234567890
(String)29
(Number)Map
(Complex Type, contains street, city, postal code)ধরা যাক, আপনি একটি User টেবিল তৈরি করতে চান, যেখানে User ID হবে Partition Key এবং Email হবে Sort Key।
Users
), এবং Primary Key কনফিগার করুন:User ID
(String)Email
(String)এভাবে আপনি সহজেই একটি Table, Item, এবং Attribute তৈরি করতে পারেন DynamoDB তে।
এই ছিল DynamoDB এর Tables, Items, এবং Attributes এর সংক্ষিপ্ত বিবরণ। যদি কোনো প্রশ্ন থাকে, জানাতে পারেন!
DynamoDB একটি NoSQL ডেটাবেস, এবং এটি ডেটা সংরক্ষণ এবং অ্যাক্সেস করার জন্য একটি বিশেষ ধরনের ডেটাবেস আর্কিটেকচার ব্যবহার করে। এতে Primary Key এবং Sort Key হল দুটি মূল উপাদান যা টেবিলের ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
এই দুটি কীগুলি ডেটাবেসে একটি রেকর্ড (Item) এর অবস্থান নির্ধারণ করে এবং ডেটা অ্যাক্সেসের জন্য অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।
Primary Key হল একটি একক কী যা DynamoDB টেবিলের প্রতিটি রেকর্ড (Item) কে অনন্যভাবে চিহ্নিত করে। এটি অবশ্যই প্রতিটি আইটেমের জন্য ইউনিক হতে হবে, এবং এটি DynamoDB তে একটি আইটেম খুঁজে পাওয়ার জন্য ব্যবহৃত হয়।
Primary Key দুটি উপায়ে নির্ধারণ করা যেতে পারে:
উদাহরণ:
ধরা যাক, আপনার একটি টেবিল আছে যেখানে ব্যবহারকারীর তথ্য সংরক্ষিত, এবং আপনি UserID কে Partition Key হিসেবে ব্যবহার করছেন।
UserID
UserID
অনুযায়ী প্রতিটি ব্যবহারকারীর ডেটা সনাক্ত করা যাবে এবং পার্টিশন করা হবে।উদাহরণ:
ধরা যাক, আপনি একটি Order টেবিল তৈরি করেছেন, যেখানে প্রতিটি ব্যবহারকারীর অর্ডারগুলি সংরক্ষিত হবে। এখানে, আপনি UserID কে Partition Key এবং OrderID কে Sort Key হিসেবে ব্যবহার করতে পারেন।
UserID
(ব্যবহারকারীর আইডি)OrderID
(অর্ডারের আইডি)এই কনফিগারেশনে, একজন ব্যবহারকারী একাধিক অর্ডার করতে পারেন, এবং প্রতিটি অর্ডারকে আলাদাভাবে শনাক্ত করা যাবে UserID
এবং OrderID
এর মাধ্যমে।
ধরা যাক, আপনার একটি টেবিল আছে Users নামে, যেখানে প্রতিটি ব্যবহারকারীর তথ্য সংরক্ষিত থাকে।
Example 1:
UserID
{ "UserID": "123", "Name": "John Doe", "Age": 30 }
{ "UserID": "124", "Name": "Jane Doe", "Age": 28 }
Example 2 (Composite Key):
UserID
OrderID
{ "UserID": "123", "OrderID": "001", "Total": 150 }
{ "UserID": "123", "OrderID": "002", "Total": 200 }
Sort Key এর মূল উদ্দেশ্য হল একেকটি Partition Key এর অধীনে ডেটা সাজানো বা অর্ডার করা। এটি আইটেমগুলির মধ্যে সম্পর্ক নির্ধারণ এবং দ্রুত সার্চ সক্ষম করতে সহায়তা করে।
এটি DynamoDB এর মূল ধারণার একটি গুরুত্বপূর্ণ অংশ, কারণ এটি ডেটাবেসের পারফরম্যান্স, স্কেলেবিলিটি এবং অর্ডারিং সক্ষমতা সরাসরি প্রভাবিত করে।
DynamoDB একটি NoSQL ডেটাবেস যা পারফরম্যান্স এবং স্কেলেবিলিটির জন্য ডিজাইন করা হয়েছে। এর মূল ভিত্তি হল Partition Key (বা Primary Key এর অংশ), যা ডেটা ভাগ করার জন্য ব্যবহৃত হয়। DynamoDB এর পারফরম্যান্স এবং স্কেলিং কার্যকারিতা অনেকটাই নির্ভর করে কিভাবে আপনি Partition Key নির্বাচন করেন এবং কিভাবে ডেটা সঠিকভাবে বিতরণ হয়।
এখানে Partition Key এবং Data Distribution সম্পর্কে বিস্তারিত আলোচনা করা হলো:
DynamoDB এ Partition Key একটি অপরিহার্য অংশ, যা একটি Primary Key হিসেবে ব্যবহৃত হয়। এটি Table এর প্রতিটি আইটেমের জন্য একটি ইউনিক আইডেন্টিফায়ার। Partition Key এর মাধ্যমে DynamoDB ডেটা সঠিকভাবে বিভক্ত করে এবং সিস্টেমের পারফরম্যান্স বজায় রাখে।
উদাহরণ: ধরা যাক, আপনি একটি টেবিল তৈরি করছেন যেখানে UserId হবে Partition Key:
UserId
→ "user_123"
, "user_456"
, "user_789"
DynamoDB এর ডেটা ডিসট্রিবিউশন একটি গুরুত্বপূর্ণ বিষয় যা পারফরম্যান্স এবং স্কেলিং নিশ্চিত করতে সাহায্য করে। এটি পার্টিশনিং এবং ডেটা distribution এর মাধ্যমে সিস্টেমের কর্মক্ষমতা বজায় রাখে।
DynamoDB ডেটার পারফরম্যান্স উন্নত করার জন্য ডেটাকে partitions বা ভাগে বিভক্ত করে রাখে। Partition Key এর মানের উপর ভিত্তি করে ডেটা একাধিক পার্টিশনে ভাগ হয়। একটি partition একটি নির্দিষ্ট অংশে ডেটা সংরক্ষণ করে এবং যখন ডেটার পরিমাণ বৃদ্ধি পায়, DynamoDB আরও পার্টিশন তৈরি করে।
Timestamp
কে Partition Key হিসেবে ব্যবহার করেছেন। যদি কোনও নির্দিষ্ট সময়ের মধ্যে (যেমন রাত ৯টার সময়) প্রচুর ডেটা আসতে থাকে, তাহলে এই সময়ের পার্টিশনটি অত্যন্ত ব্যস্ত হয়ে পড়বে এবং পারফরম্যান্সের সমস্যা তৈরি করতে পারে।ধরা যাক, আপনার একটি Order টেবিল আছে, যেখানে OrderId
হল Partition Key:
OrderId
কে এক নির্দিষ্ট পার্টিশনে রাখবে, যাতে ডেটার দ্রুত অ্যাক্সেস করা যায়।OrderId
সঠিকভাবে নির্বাচিত হয়, তাহলে ডেটা বিভিন্ন পার্টিশনে সুন্দরভাবে বিতরণ হবে এবং পারফরম্যান্স ভালো থাকবে।DynamoDB এর পারফরম্যান্স এবং দক্ষতা নিশ্চিত করতে একটি সঠিক Partition Key নির্বাচন করা অত্যন্ত গুরুত্বপূর্ণ।
DynamoDB একটি প্রোডাকশন-গ্রেড NoSQL ডেটাবেস সার্ভিস যা ওয়েব অ্যাপ্লিকেশন এবং অন্যান্য সিস্টেমে ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে ব্যবহৃত হয়। DynamoDB এর পারফরম্যান্স এবং খরচ পরিচালনা করার জন্য, Read Capacity Units (RCU) এবং Write Capacity Units (WCU) ব্যবহার করা হয়। এগুলি হল টেবিলের পারফরম্যান্স কনফিগারেশনের প্রধান অংশ এবং ডেটাবেসের ক্ষমতা পরিচালনা করতে সাহায্য করে।
RCU (Read Capacity Unit) হল একক অপারেশনের জন্য অ্যাপ্লিকেশন কত দ্রুত ডেটা পড়তে পারে তার পরিমাপ। যখন আপনি DynamoDB টেবিল থেকে ডেটা পড়েন, তখন আপনি নির্দিষ্ট সংখ্যক RCU ব্যবহার করবেন।
Strongly Consistent Read মানে হল যে ডেটা সবসময় সর্বশেষ আপডেট হওয়া রেকর্ড প্রদর্শন করবে। অন্যদিকে, Eventually Consistent Read অল্প সময়ের জন্য পুরনো ডেটাও ফেরত দিতে পারে, কিন্তু এতে পারফরম্যান্স কিছুটা ভালো হয়।
WCU (Write Capacity Unit) হল একক অপারেশনের জন্য অ্যাপ্লিকেশন কত দ্রুত ডেটা লিখতে পারে তার পরিমাপ। যখন আপনি DynamoDB টেবিলের মধ্যে নতুন ডেটা লেখেন বা বিদ্যমান ডেটা আপডেট করেন, তখন আপনি নির্দিষ্ট সংখ্যক WCU ব্যবহার করবেন।
DynamoDB এ দুটি মুড রয়েছে যেখানে আপনি RCU এবং WCU কনফিগার করতে পারবেন:
On-Demand Mode তে, আপনি RCU এবং WCU কনফিগার করতে পারেন না। DynamoDB স্বয়ংক্রিয়ভাবে এই মান নির্ধারণ করে এবং ট্রাফিকের পরিবর্তন অনুযায়ী এটি বাড়াতে বা কমাতে থাকে।
এগুলি সঠিকভাবে কনফিগার করলে, আপনার DynamoDB টেবিলের পারফরম্যান্স ও খরচ উভয়ই অপটিমাইজ করা সম্ভব।
common.read_more